using System.Collections.Generic;
using GGEditor.API;

namespace GGEditor.API.Documents
{
	public interface IDocumentReader
	{
		IPropertiesReader Properties { get; }
		IEnumerable<IEntityReader> Entities { get; }
		event DocumentPropertyChangedEventHandler PropertyChanged;
		event EntityChangedEventHandler EntityAdded;
		event EntityChangedEventHandler EntityRemoved;
	}

	public interface IEntityReader
	{
		IPropertiesReader Properties { get; }
		event EntityPropertyChangedEventHandler PropertyChanged;
	}

	public delegate void EntityChangedEventHandler(IDocumentReader document, IEntityReader entity);
	public delegate void DocumentPropertyChangedEventHandler(IDocumentReader document, string key);
	public delegate void EntityPropertyChangedEventHandler(IEntityReader entity, string key);
	
}